Systems and processes for determining costs associated with internal software development

ABSTRACT

Systems and processes may receive and analyze billing information and/or business expenditures to determine costs associated with jobs corresponding to an internal development of software for internal use. The billing information and/or business expenditures may be analyzed according to accounting rules. Capitalizable costs and/or expenses may be determined based on business information and/or business expenses.

TECHNICAL FIELD

This invention relates to systems and processes for determining costs associated with software development, and more particularly to determining costs associated with the internal development of software for internal use.

BACKGROUND

Enterprises use software for a variety of business purposes (e.g., to provide services to clients and/or the enterprise itself, to perform data analysis for the enterprise, to manage assets, and/or as a commodity for sale) and may obtain software by licensing, purchasing, and/or internally developing the software. The manner in which software is acquired by the enterprise also affects its accounting treatment of the software (e.g., treated as an asset or an expense). Additionally, the intended purpose of the software (e.g., for internal use, for sale, to provide services to customers, etc.) may affect the accounting treatment of software that is obtained. Furthermore, government regulations (e.g., federal and state) may affect the accounting treatment of software that is obtained. For example, government regulations may require adherence to Generally Accepted Accounting Principles (GAAP) or other standard accounting procedures, which may be based on industry standards or government regulations.

SUMMARY

Systems and processes may receive billing information and business expenditures and determine costs for an enterprise for a time period based on the received information. The costs may be for jobs associated with internal development of software for internal use. Costs, such as capitalizable costs and expenses, may be determined by applying accounting rules to the billing information and/or the business expenditures. Systems and processes may also allow review, approval, and/or modification of billing information and/or business expenditures.

In one general aspect, billing information is received for jobs for a time period, and at least a portion of the billing information associated with those jobs that correspond to an internal development of software for internal use is identified. Capitalizable costs are identified in at least a portion of the billing information based at least in part on job identifiers and one or more of individuals that are employees of the enterprise are identified based at least in part on individual identifiers, An analysis is performed by applying one or more accounting rules to at least a portion of the billing information, and capitalizable costs for the enterprise for a time period are determined based on the billing information and the analysis of the billing information. The received billing information can include job identifiers for jobs, amounts of time billed by individuals for the jobs, and individual identifiers for the individuals. The individual identifiers generally indicate a relationship of an individual to an enterprise. At least one of the accounting rules includes a rule applicable to employees of the enterprise.

Various implementations may include one or more of the following features. One or more tasks associated with at least a portion of the billing information may be identified. A job phase of identified tasks may be determined. Accounting rules may include a rule related to a job phase of a task. Determining a job phase of a task may include performing an analysis of billing information based at least in part on an accounting rule. Capitalizable costs may be identified in the billing information based at least in part on a job phase. Part of the billing information for an employee may be modified based on one or more of the accounting rules. Modifying a part of the billing information may include modifying capitalizable costs. Expenses for the enterprise for a time period may be determined at least partially based on the billing information and the analysis of the billing information. Billing rates associated with individual identifiers may be retrieved and expenses and/or capitalizable costs for the enterprise may be determined based at least in part on the retrieved billing rates.

In another general aspect, billing information for jobs that include tasks are received for a time period and at least a portion of billing information for tasks corresponding to an internal development of software for internal use is identified. Capitalizable costs in at least a portion of the billing information are identified based at least in part on task identifiers and an analysis is performed by applying one or more accounting rules to at least a portion of the billing information. Capitalizable costs for the enterprise for a time period are determined based on the billing information and the analysis of billing information. The received billing information includes task identifiers for tasks, amounts of time billed by individuals for the tasks, and individual identifiers for the individuals. The individual identifiers indicate a relationship of an individual to an enterprise. The accounting rules include a rule applicable to capitalizable costs.

Various implementations may include one or more of the following features. A job phase of one or more tasks may be determined. Accounting rules applicable to capitalizable costs may be related to the determined job phase. Employees of an enterprise may be identified based at least in part on the individual identifiers, and one or more accounting rules applicable to employees may be applied to the billing information. Expenses for the enterprise for a time period may be determined based on the billing information and the analysis of billing information. Billing rates associated with individual identifiers may be retrieved and capitalizable costs for the enterprise may be determined based at least in part on the retrieved billing rates.

In another general aspect, captializable costs for an enterprise incurred fro a time period are determined using a memory, an analysis module, a rules engine, and an expense module. Capitalizable costs associated with an internal development of software for internal use. The memory stores billing rates associated with individuals and accounting rules. The analysis module receives billing information for one or more jobs, determines at least a portion of the billing information associated with jobs corresponding to an internal development of software for internal use, and identifies capitalizable costs in at least a portion of the billing information based at least in part on job identifiers for one or more of the jobs. The rules engine performs an analysis by applying accounting rules to at least a portion of the billing information. The accounting rules includes a rule applicable to employees of the enterprise. The expense module determines capitalizable costs for the enterprise for a time period based on the billing rates and the analysis of the billing information.

Various implementations may include one or more of the following features. An accounting rule may be related to a job phase of at least one of the jobs and/or be applicable to capitalizable costs. The rules module may modify at least a part of the billing information based on the analysis of the billing information. The expense module may determine expenses for the enterprise for a time period based on the billing rates and the analysis of the billing information.

The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 illustrates an example of a system for determining costs associated with internal development of software.

FIG. 2 illustrates an example of a process for determining costs associated with internal software development.

FIG. 3 illustrates an example display for determining costs associated with internal software development.

FIG. 4 illustrates an example of billing information.

FIG. 5 illustrates another example of billing information.

FIG. 6 illustrates an example of a display presented by a cost analysis device.

FIG. 7 illustrates a process for determining costs associated with internal development of software.

FIG. 8 illustrates an example of billing information that includes capitalizable costs based on amounts of time billed.

FIG. 9 illustrates an example display presented for the entry of business expenditures.

FIG. 10 illustrates an example display presented for review and approval of the billing information and the business expenditures.

FIG. 11 illustrates an example of a report.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Systems and processes may determine costs associated with the internal development of software for internal use. Costs may be identified as capitalizable costs or expenses. Capitalizable costs may be capitalizable (e.g., treated as a credit on long-term asset accounts, treated as a debit on the cash account of a balance sheet, and/or amortized such that depreciation expenses are treated as expenses on an income statement) and treated as an asset of the company, as opposed to costs that are characterized as expenses (e.g., non-capitalizable costs). Thus, identification and accurate accounting of capitalizable costs may increase the profitability of an enterprise. Systems and processes may facilitate increased capture of capitalizable costs by retrieving billing information and business expenditures and automatically determining capitalizable costs. Compliance with GAAP and/or other standard accounting practices (e.g., Statement of Practice “SOP” rules and standards, such as SOP-98-1, Accounting for the Costs of Computer Software Developed or Obtained for Internal Use, Federal Accounting Standard Board “FASB” rules and/or standards, etc.) may be required by government regulations (e.g., federal and state laws) to receive the tax benefits associated with the treatment of capitalizable costs. Compliance with required reviews, approvals, and documentation (e.g., by government regulations or accounting rules) may also be facilitated by using the systems and processes.

FIG. 1 illustrates an example of a system for determining costs associated with the internal development of software for internal use. An enterprise (e.g., a corporation, a software development company, a service provider, etc.) may use a cost analysis device 110 to facilitate the determination of costs associated with the internal development of software for internal use. Software development often occurs over a time period (e.g., weekly, monthly, quarterly) that is longer than the time period (e.g., weekly or monthly) in which costs are billed to an enterprise and/or longer than the time period (e.g., quarterly, yearly) in which capitalizable costs may be accounted to a government, such as state or federal taxing agencies. Thus, accurate and timely capture of capitalizable costs (e.g., capture as billed rather than captured at the end of a project) may increase enterprise profitability.

Cost analysis device 100 may receive billing information and/or business expenditures and determine capitalizable costs and expenses based on the received billing information and/or the received business expenditures. Billing information may include costs for a variety of jobs (e.g., sales, software development, management, accounting, etc.). Each job may include a variety of tasks (e.g., for a job of developing new software, tasks may include, for example, creating images, coding, testing, enhancing, etc.). Since the treatment of a job, when determining capitalizable costs, may vary based on the phase of a job, a job phase may be included in billing information and/or be derived from billing information such as job identifiers (e.g., which provide information related to a job, such as a type of job, a name of job, etc.), task identifiers (e.g., which provide information related to a task, such as a type of task, a name of task, a code for a job that a task is associated with, etc.). Costs related to jobs and/or tasks associated with an internal development of software for internal use may be identified from the billing information (e.g., via job identifier, job name, task identifier, etc.). These costs may be identified since a portion of costs associated with the internal development of software for internal use may be capitalizable. Billing information may also include, for example, amounts of time billed by individuals, individual identifiers (e.g., numbers, letters, other indicia, or combinations thereof), job identifiers (e.g., numbers, letters, other indicia, or combinations thereof), task identifiers (e.g., numbers, letters, other indicia, or combinations thereof), capitalizable costs, and/or expenses. Business expenditures may include costs other than costs associated with time billed by individuals, such as, for example, travel costs (e.g., airfare, mileage reimbursements, meal costs, hotel costs, etc.), entertainment costs, and/or supply costs. Business expenditures may also include individual identifiers, job identifiers, task identifiers, capitalizable costs, ratios to determine what portion of costs are capitalizable, etc.

A cost analysis device 110 may be coupled to one or more user computers 120 via a network 130. Cost analysis device 110 may be a server or other computer system that includes a memory 111. Instructions 112 a, operating systems 112 b, and/or applications 112 c, such as an analysis module 112 d, a rules engine 112 e, and/or an expense module 112 f may be stored on memory 111.

Analysis module 112 d may be executed by processor 114 to receive billing information and identify capitalizable costs in the billing information. For example, analysis module 112 d may receive billing information (e.g., amounts of time billed and identification of individuals who billed time) for several jobs and/or tasks. Analysis module 112 f may retrieve the billing information and/or a portion of the billing information such as, amounts of capitalizable costs for an enterprise for a time period (e.g., based on amounts of time billed), costs related to jobs associated with the internal development of software for internal use, individual identifiers associated with time billed, job identifiers, and/or task identifiers.

Analysis module 112 d may identify billing information associated with jobs corresponding to the internal development of software for internal use. For example, analysis module 112 d may identify jobs and/or tasks within billing information that are associated with the internal development of software for internal use based in part on job identifiers, job phases, and/or task identifiers. Job identifiers and/or task identifiers may include a code (e.g., letter(s), number(s), or combinations thereof) that identifies a job or a task as corresponding to internal software development for internal software use. As another example, the analysis module may apply an accounting rule to a job or a task (e.g., job information, task information, job identifiers and/or task identifiers) to determine if the job/task is associated with the internal software development of software for internal use.

Analysis module 112 d may also identify capitalizable costs in the billing information. For example, analysis module 112 d may analyze job identifiers or task identifiers in billing information and identify capitalizable costs based at least in part on the analysis of the job identifiers and/or the task identifiers. As another example, analysis module 112 d may identify capitalizable costs based on accounting rules. For example, characterization of costs as capitalizable costs may be based on job type, job phase, task type, individual who incurred the expense, costs incurred to date, a ratio of capitalizable costs to expenses, and/or the type of cost (e.g., from time billed or from business expenditures). Analysis module 112 d may operate in conjunction with rules engine 112 e so that accounting rules are applied to the billing information to identify capitalizable costs in the billing information.

In some implementations, analysis module 112 d may receive business expenditures (e.g., travel costs, dining costs, entertainment costs, etc.) for a job and determine a ratio of capitalizable costs to expenses for the job. The ratio of capitalizable costs to expenses may be determined based at least in part on accounting rules, capitalizable costs and/or expenses for a time period for a job or a task, capitalizable costs and/or expenses incurred to date for a job or a task, job phase, job identifiers, and/or task identifiers. For example, accounting rules may include a rule related to capitalizable costs (e.g., a maximum amount, what portion can be appropriately characterized as capitalizable, etc.). As another example, the analysis module 112 d may determine a ratio of capitalizable costs to expenses by identifying tasks that are capitalizable tasks (e.g., tasks in which at least a portion of costs can be capitalizable) within a job (e.g., the ratio is a ratio of capitalizable tasks to non-capitalizable tasks in a job, the ratio is a ratio of time billed for a task that is capitalizable to time billed for a task that is non-capitalizable for a time period, etc.).

Rules engine 112 e may be executed by processor 114 to analyze the billing information received. Rules engine 112 e may analyze billing information by applying accounting rules to the billing information. For example, accounting rules, such as rules applicable to employees of the enterprise, independent contractors, job phases, capitalizable jobs, capitalizable costs, and/or expenses may be applied by the rules engine. Rules engine 112 e may modify the billing information based on the analysis of billing information (e.g., application of accounting rules). For example, if an accounting rule allows a maximum of 40 hours per week per employee to be characterized as a capitalizable cost, the billing information may be modified to include only 40 hours per week per employee and/or capitalizable costs may only be based on 40 hours per week per employee. As another example, accounting rules may include a rule related to independent contractors, such as a rule related to capitalizable costs that are incurred by independent contractors (e.g., travel costs are capitalizable costs for independent contractors).

Expense module 112 f may be executed by processor 114 to determine costs, such as capitalizable costs and/or expenses, for the enterprise. Capitalizable costs and/or expenses may be determined by the expense module 112 f for a time period (e.g., a month, a quarter, a year, etc.). Expense module 112 f may retrieve billing rates (e.g., from memory 111) and determine capitalizable costs and/or expenses based at least in part on the billing rates. Expense module may also determine capitalizable costs and/or expenses based at least in part on the analyses performed by the analysis module 112 d and/or operations performed rules engine 112 e.

A determined ratio of capitalizable costs to expenses (e.g., determined by analysis module 112 d) may be used by expense module 112 f to determine the portion (e.g., 100%, 73%, 20%, 0%, etc.) of business expenditures that can be characterized as capitalizable costs and/or expenses. Expense module 112 f may also determine total capitalizable costs and/or expenses based on billing information and/or the business expenditures.

Memory 111 may also store data 112 g, such as billing information, individual identifiers, information related to individuals, information related to tasks and/or jobs, business expenditures, information related to types of business expenditures, job identifiers, billing rate information, and/or accounting rules.

Cost analysis device 110 also includes a processor 114 to execute software instructions 112 a (e.g., analysis module 112 d, rules engine 112 e, and/or expense module 112 f), save data, and/or retrieve data 112 h. Cost analysis device 110 also includes a communication interface 115. Communication interface 115 facilitates data transfer between cost analysis device 110 and user computers 120 and/or remote systems 140 via network 130. For example, communication interface 115 may facilitate retrieval of and/or receive billing information and/or business expenditures from remote systems 140 (e.g., databases, web servers, or other computer systems) via network 130. As another example, information such as accounting rules, billing rates, individual identifiers, and/or job identifiers stored on remote systems 140 may be retrieved by cost analysis device 110 using communication interface 115.

Via user computer 120, a user (e.g., individual who bills time, managers, and/or members of finance department for an enterprise) may access cost analysis device 110 (e.g., via website or other network protocols). User computer 120 may be a personal computer, a laptop, a personal digital assistant (PDA), a smart phone, or other suitable computer. As illustrated in FIG. 1, user computer 120 may include a memory 121 to store data 122 and instructions 123 (e.g., software), such as operating systems 123 a and applications 123 b. User computer 120 also includes a processor 124 to execute instructions, access data 122, and/or manipulate data. User computer 120 also may include presentation interface 125 to present, for example, a display (e.g., an interface presented to a user) generated by cost analysis device 110. Presentation interface 125 may allow a user to view data (e.g., billing information, business expenses, capitalizable costs, expenses, etc.) presented by cost analysis device 110. User computer 120 also includes a communication interface 126 to facilitate communication and transfer of data between the user computer and other systems (e.g., remote systems 140, cost analysis device 110) via network 130.

FIG. 2 illustrates an example process 200 for determining costs associated with the internal development of software for internal use, which may be performed by systems such as system 100 depicted in FIG. 1. Billing information is received (operation 210). Billing information may include job identifiers, task identifiers, amounts of time billed by individuals for jobs/tasks, billing rates, and/or individual identifiers. Billing information may be received via XML messages, retrieved from a database, and/or uploaded from another application, for example. Billing information may also be uploaded to a website coupled to the cost analysis device.

Capitalizable costs in the billing information may be identified (operation 220). For example, job identifiers and/or task identifiers may be used to identify capitalizable costs in the billing information. As another example, a phase of a job may be identified (e.g., based on task identifiers, job identifiers, and/or accounting rules) and capitalizable costs may be identified based on the phase of the job.

Accounting rules may be applied to billing information (operation 230). Accounting rules may be applied to the portion of the billing information in which capitalizable costs are identified. For example, accounting rules may be based on: GAAP rules and/or standards; SOP rules and standards, such as SOP-98-1, Accounting for the Costs of Computer Software Developed or Obtained for Internal Use; and/or FASB rules and/or standards. Accounting rules may, for example, be rules related to capital costs, expenses, tasks, jobs, individuals, billing rates, and/or amounts of time billed. Application of accounting rules may, for example, facilitate identification of capital costs, expenses, capitalizable jobs, jobs for internal development of software for internal use, capitalizable tasks, and/or individuals with a predetermined relationship to the enterprise. Accounting rules may be retrieved from a memory coupled to the cost analysis device. Storing accounting rules in a memory coupled to the cost analysis device may facilitate updating the accounting rules. Maintaining up-to-date accounting rules may facilitate compliance with government regulations and/or increase accuracy of capitalizable cost tracking and determination.

Capitalizable costs and expenses may be determined (operation 240). For example, capitalizable costs and expenses for the received billing information may be determined based on the identified capitalizable costs and/or the application of accounting rules to the business rules.

FIG. 3 illustrates an example of a process 300 for determining costs for the internal development of software for internal use performed by systems, such as system 100 depicted in FIG. 1. Billing information for a time period may be received (operation 310). Billing information may be related to amounts of time billed by individuals (e.g., in time keeping programs) for one or more jobs and/or tasks. Billing information may be received from one or more time keeping or billing programs (operation 311). A cost analysis device may be able to similarly process billing information from multiple time keeping programs by storing data correlating alternatives for information needed to determine capitalizable costs and/or expenses. For example, individual names, job names, and/or billing codes may be used in some time keeping programs instead of individual identifiers, job identifiers, and/or billing rates, respectively. A memory of the system may store data that correlates and/or provides alternatives to the received information, such as individual identifiers, job identifiers, and/or billing rates.

FIG. 4 illustrates an example of billing information 400 received from a time keeping program. As illustrated, billing information 400 includes jobs 410, job phases 405, task names 420, and task identifiers 430 for the tasks. Billing information 400 also includes time billed 440 for jobs, names of jobs 410, names of tasks 420, names of individuals 450, and/or individual identifiers 455.

As shown in FIG. 3, billing information may be continuously received or received in batches. Billing information may be received periodically, such as nightly, during weekends, or at other off-peak times, or a periodically. For example, billing information may be retrieved for a time period (operation 312). Billing information received may include amounts of time billed for jobs and individual identifiers and job identifiers associated with the amounts of time billed.

The phases of jobs (e.g., preliminary, development, implementation, operation, upgrades, etc.) may be identified (operation 320). A job phase may be identified based at least in part on which types of tasks are included in the billing information. A job phase may be identified based on job identifiers and/or task identifiers. For example, at least a portion (e.g., a series of numbers and/or letters) of the job identifier and/or task identifier may indicate the phase of the job. Job phase information may be identified because the treatment of costs may vary based at least in part on the phase of the job associated with the costs. For example, costs in a preliminary phase of a job may be expensed. As another example, interest costs may be capitalizable costs during the development phase of a job, while not capitalizable during other job phases.

Tasks in each job phase may be identified in the billing information (operation 330). At least a portion of a task identifier may provide information about the task and the jobs with which the tasks are associated to facilitate identification of a job phase for a task.

Billing rates for one or more individuals associated with the jobs in the billing information may be retrieved (operation 340). For example, the billing rates may be stored in a memory coupled (e.g., directly or via one or more network protocols) to the cost analysis device. The billing rates may be correlated to individual identifiers or a portion of the individual identifier (e.g., in a table). For example, an individual identifier may include (e.g., via a portion of the individual identifier) a billing classification that is correlated with a billing rate.

Billing information may be identified that is associated with jobs corresponding to the internal development of software for internal use (operation 350). Billing information that is associated with tasks corresponding to the internal development of software for internal use may also be identified. Because internally developed software for internal use may be classified as an asset and/or capitalizable, accurate identification of jobs and/or tasks that are capitalizable may increase profits for an enterprise. For example, jobs and/or tasks corresponding to the internal development of software for internal use may be identified based on a phase of a job, job identifiers and/or task identifiers. As another example, accounting rules may be applied to billing information to identify billing information associated with jobs corresponding to the internal development of software for internal use.

Employees of the enterprise may also be identified (operation 360). Independent contractors or other parties that work on jobs for the enterprise may also be identified. Employees and/or independent contractors may be identified based at least in part on individual identifiers associated with individuals. Identification of individuals with a predetermined relationship to the enterprise may facilitate application of accounting rules, and thus, facilitate determination of capitalizable costs and/or expenses.

Accounting rules may be applied to billing information (operation 370). For example, accounting rules may be accessed from a database (operation 375) and applied by a cost analysis device to billing information. The database may be directly coupled to the cost analysis device and/or accessible via one or more network protocol (e.g., TCP/IP, Wi-Fi, Wi-Max, FireWire, Bluetooth, etc.). Accounting rules may be applied to the billing information or to the portion of the billing information associated with capitalizable jobs and/or capitalizable tasks (e.g., corresponding to the internal development of software for internal use).

Accounting rules may, for example, relate to employees, independent contractors, a classification of capitalizable costs, and/or an identification of capitalizable jobs and/or tasks may be applied to billing information. Accounting rules may include a rule related to a relationship of an individual to an enterprise (e.g., an employee or an independent contractor) and/or related to a relationship between an individual and the enterprise. For example, an accounting rule may be related to capitalizable tasks. FIG. 5 illustrates an example of billing information 500. A name or an identifier of a capitalizable task 510 may be identified and costs, such as payroll expenses, associated with the capitalizable task may be characterized as capitalizable. An accounting rule related to capitalizable tasks that is not based on a relationship between an individual and an enterprise may be applied to business information. As illustrated, the name of capitalizable task 510 is “Party Hub Release 1 go live” and the costs are classified as capitalizable costs whether they were billed by employees 520 or independent contractors 530. Another accounting rule may limit the amount of time billed (e.g., 40 hours per week) by employees that can be characterized as capitalizable costs. As illustrated in FIG. 5, this rule is related to the relationship of an individual to an enterprise and thus applicable to employees. Time billed 540 by employee 520 on a capitalizable task 510 is limited to 40 hours per week by this rule while time billed 550 by an independent contractor 530 is not limited by this rule.

As illustrated in FIG. 3, billing information may be modified based on the application of accounting rules to the billing information (operation 380). For example, an accounting rule related to employees may limit an amount of time billed by employees that can be capitalizable to 40 hours per week per employee. Billing information related to an amount of time billed by employees may be modified based on this rule (e.g., 48 hours billed by an employee in a week may be modified to 40 hours). As another example, accounting rules may be related to the identification of jobs for the internal development of software for internal use and the billing information may be modified such that jobs that do not satisfy this rule (e.g., jobs unrelated to internal development of software for internal use) may be hidden or deleted from the billing information.

Capitalizable costs and/or expenses for the enterprise may be determined for a time period (operation 390). For example, capitalizable costs and/or expenses may be determined based on billing rates, the application of accounting rules, and/or the billing information. As another example, capitalizable costs may be determined and expenses may include the other costs in the billing information. Capitalizable costs and/or expenses for the enterprise may be stored and/or transmitted (e.g., to a finance department, to auditors, to government agencies, for remote authenticated storage, etc.).

FIG. 6 illustrates an example display 600 that presents the determined capitalizable costs and expenses for an enterprise. Capitalizable costs 610 and/or expenses 620 may be organized, sorted, and presented based on various categories, such as tasks and/or individual identifiers 630. A total capitalizable cost 640 and/or total expense 650 based on amounts of time billed may be determined and presented.

Process 300 may be implemented by system 100 or similar systems. In addition, various operations may be added, deleted, modified, or reordered in process 300. For example, billing information may be received via XML message. As another example, a job phase may not be identified. In addition, billing rates may not be retrieved. For example, billing information may include billing rates and/or billing information may include costs for amounts of time billed. In addition, employees may not be identified. Furthermore, reports may be generated based on the determined capitalizable costs and expenses. In addition, capitalizable costs and expenses may be determined based on tasks rather than, or in addition to, jobs. For example, tasks corresponding to the internal development of software for internal use may be identified and accounting rules may be applied to the billing information associated with the identified tasks.

FIG. 7 illustrates a process 700 for determining capitalizable costs performed by systems, such as system 100 depicted in FIG. 1. Billing information may be received that includes capitalizable costs, which are based on amounts of time billed for jobs (operation 705). Capitalizable costs, which are based on amounts of time billed for jobs, may be determined using processes, such as process 200, process 300, and/or other appropriate processes. Capitalizable costs that are based on amounts of time billed for jobs may be retrieved from a memory coupled (e.g., directly or indirectly) to a cost analysis device. Billing information may be received for a time period (e.g., month, quarter, year, etc.). Billing information may also include individual identifiers, job identifiers, task identifiers, job phases, and/or expenses that are based on amounts of time billed for jobs.

FIG. 8 illustrates an example of received billing information 800. Billing information 800 may include individual identifiers 810 that indicate a name 820 of an individual and/or a relationship 830 of the individual to the enterprise (e.g., employee or independent contractor). As illustrated, billing information 800 includes capitalizable costs 840 and expenses 850. Billing information 800 also includes billing rates 860.

As illustrated in FIG. 7, business expenditures for jobs may be received (operation 710). For example, managers and/or individuals may enter business expenditures via a website coupled to the cost analysis device. FIG. 9 illustrates an example of a display 900 presented to a manager and/or an individual. The display may facilitate entry of business expenditures. Business expenditures may be entered using a display which includes drop-down fields with available options, such as for types of business expenditures. The display may also automatically determine a portion of the fields (e.g., based on business expenditures provided and/or billing information), such as a ratio of capitalizable costs to expenses (illustrated as “% of labor hours capitalized”) and/or totals.

The types of business expenditures may be identified (operation 715). For example, types of business expenditures may include travel expenditures (airfare, lodging, auto rental, mileage, etc.), meal expenditures, entertainment expenditures, and/or other expenditures. The type of business expenditures may be received via fields in a display (e.g., display 900). Different types of business expenditures may be treated differently by accounting rules, and thus characterized, differently by government regulations and/or GAAP, for example. Thus, the type of business expenditures may be identified to determine which business expenditures or what portion of business expenditures are appropriately characterized as capitalizable costs or expenses.

Individual identifiers for individuals who incurred the received business expenditures may be received (operation 720). Different accounting rules may apply based on a relationship of the individual to the enterprise (e.g., employees v. independent contractors), and thus individual identifiers may be used to identify whether individuals are employees or independent contractors.

One or more accounting rules may be applied to the business expenditures (operation 725). For example, an accounting rule may relate to capitalizable business expenditures, and as a result of the application of the rule, at least a portion of business expenditures may be capitalizable for independent contractors but expensed for employees.

A ratio of capitalizable costs to expenses may be determined for the jobs in the billing information (operation 730). The ratio of capitalizable costs to expenses may be determined based at least in part on the individual identifiers associated with the business expenditures, amount of time billed to tasks in a job, classification of tasks in a job as capitalizable, job phase, etc. For example, the ratio may be the ratio of capitalizable labor costs to expensed labor costs (e.g., for the period, the job, and/or the task).

Capitalizable costs and/or expenses may be determined based on billing information, business expenditures, and the determined ratios of capitalizable costs to expenses (operation 735). Capitalizable costs and/or expenses may also be determined based on the application of accounting rules to the business expenditures. A total capitalizable cost and/or a total expense for the enterprise may be determined based on determined capitalizable costs, determined expenses, and/or capital costs and/or expenses in the received the billing information. Capitalizable costs and/or expenses may be stored in a memory.

Government regulations and/or other standard accounting procedures (e.g., provided by GAAP, SOP, FASB, etc.) may require approval of billing information and/or business expenditures in order to treat costs associated with the internal development of software for internal use as capitalizable costs. Thus, billing information and/or business expenditures may be displayed to a manager, or other appropriate individual, for approval and/or modification. Approval of billing information and/or business expenditures may be received (operation 740). For example, a manager of employees and/or independent contractors may review and approve or disapprove portions of the billing information and/or business expenditures.

FIG. 10 illustrates an example of a display 1000 presented to a manager for the manager to provide an indication of approval or disapproval 1010 of billing information 1020 and/or business expenditures. Display 1000 may be presented via a presentation interface of the manager's computer. Display 1000 may have a user interface that facilitates approval (e.g., by allowing sorting by categories, such as employee, task, or job; by allowing querying; and/or by highlighting modifications). Display 1000 may also include invoice amounts 1030 and an indication of whether the invoice amounts are approximately the same as costs from the amounts billed by independent contractors in the billing information and/or business expenditures.

As illustrated in FIG. 7, modifications to billing information and/or business expenditures may be received (operation 745). When a manager reviews billing information and/or business expenditures, the manager may modify portions of billing information and/or business expenditures. Modifications may include altering amounts of time billed, job identifiers, task codes, individual identifiers, business expenditures, etc. Compliance with government regulations and/or standard accounting procedures may require documentation of modifications. Auditors may then verify modifications at a later date.

Documentation related to modifications may be requested (operation 750). For example, when a portion of billing information and/or business expenditures is modified, a message (e.g., on the website, in a separate window, etc.) may be transmitted requesting documentation that verifies the modification. Documentation may include receipts, signed statements, and/or other appropriate documents.

Documentation related to modifications may be received (operation 755) and stored (operation 760). For example, documentation (e.g., images or text, such as pdfs, rich text files, html files, etc.) may be transmitted to the cost analysis device and stored in a memory coupled to the cost analysis device.

Reports may also be generated (operation 765). A generated report may include capitalizable costs and/or expenses. For example, a quarterly report may be generated that includes capitalizable costs and expenses for an enterprise for a quarter. The reports may be saved and/or transmitted (e.g., to a finance department, to government agencies, etc.).

FIG. 11 illustrates an example of a generated report 1100. As illustrated, report 1100 includes capitalizable costs 1110 and expenses 1120 for a time period 1130. The report may summarize capitalizable costs and expenses based on whether the costs and/or expenses are associated with time billed by employees 1140, time billed by independent contractors 1150, business expenditures incurred by employees 1160, and/or business expenditures incurred by independent contractors 1170.

Process 700 may be implemented by system 100 or similar systems. In addition, various operations may be added, deleted, modified, or reordered in process 700. For example, billing information may be received via XML message. As another example, a job phase, capitalizable jobs, and/or capitalizable tasks may be identified. As another example, jobs and/or tasks related to the internal software development for internal use may be identified and business expenditures for the identified jobs and/or tasks may be received. In addition, capitalizable costs and/or expenses may be determined based on tasks, rather than, or in addition, to jobs. For example, billing information and business expenditures received may be associated with tasks. As another example, the ratio of capitalizable costs to expenses may be determined for one or more task in business expenditures.

Although users (e.g., user, manager, employee, independent contractors, and/or other parties) have been described as a human, a user may be a person, a group of people, a person or persons interacting with one or more computers, and/or a computer system. A user computer may describe one or more computers and/or computer systems.

Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the term “machine-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user by an output device can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.

The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other implementations are within the scope of this application.

It is to be understood the implementations are not limited to particular systems or processes described which may, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular implementations only, and is not intended to be limiting. As used in this specification, the singular forms “a”, “an” and “the” include plural referents unless the content clearly indicates otherwise. Thus, for example, reference to “a cost” includes a combination of two or more costs and reference to “a job” includes different types of jobs. 

1. A computer-implemented method for determining costs for an enterprise incurred for a time period and associated with internal development of software for internal use, the method comprising: receiving billing information for jobs for a time period, wherein billing information includes: job identifiers for the jobs; amounts of time billed by individuals for one or more of the jobs; and individual identifiers for the individuals, wherein the individual identifiers indicate a relationship of an individual to the enterprise; identifying at least a portion of the billing information associated with the jobs corresponding to internal development of software for internal use; identifying capitalizable costs in the at least a portion of the billing information based at least in part on the job identifiers; identifying, in the at least a portion of the billing information, one or more of the individuals that are employees of the enterprise based at least in part on the individual identifiers; performing an analysis by applying one or more accounting rules to the at least a portion of the billing information, wherein at least one of the accounting rules includes a rule applicable to employees of the enterprise; and determining capitalizable costs for the enterprise for the time period based on the at least a portion of the billing information and the analysis.
 2. The method of claim 1 further comprising identifying one or more tasks associated with the at least a portion of the billing information.
 3. The method of claim 2 further comprising determining a job phase of one or more of the identified tasks.
 4. The method of claim 3 wherein determining a job phase of one or more of the identified tasks includes performing an analysis of the at least a portion of the billing information based at least in part on at least one of the accounting rules, wherein at least one of the accounting rules includes a rule related to the job phase of at least one of the identified tasks.
 5. The method of claim 3 wherein identifying capitalizable costs in the at least a portion of the billing information is based at least in part on the identified job phase.
 6. The method of claim 1 further comprising modifying a part of the billing information for at least one employee based on one or more of the accounting rules.
 7. The method of claim 1 further comprising modifying a part of the billing information including capitalizable costs.
 8. The method of claim 1 further comprising determining expenses for the enterprise for the time period at least partially based on the at least a portion of the billing information and the analysis.
 9. The method of claim 8 further comprising retrieving billing rates associated with the individual identifiers; wherein determining the expenses for the enterprise is based at least in part on the retrieved billing rates.
 10. The method of claim 1 further comprising retrieving billing rates associated with the individual identifiers; wherein determining the capitalizable costs for the enterprise is based at least in part on the retrieved billing rates.
 11. An article comprising a machine-readable medium storing instructions for determining capitalizable costs for an enterprise incurred for a time period and associated with internal development of software for internal use, the instructions operable to cause data processing apparatus to perform operations comprising: receiving billing information for jobs for a time period, wherein at least one of the jobs includes tasks, and wherein the billing information includes: task identifiers for the tasks; amounts of time billed by individuals for one or more of the tasks; and individual identifiers for the individuals, wherein the individual identifiers indicate a relationship of an individual to the enterprise; identifying at least a portion of billing information for tasks corresponding to internal development of software for internal use; identifying capitalizable costs in the at least a portion of the billing information based at least in part on task identifiers; performing an analysis by applying one or more accounting rules to the at least a portion of billing information, wherein at least one of the accounting rules includes a rule applicable to capitalizable costs; and determining capitalizable costs for the enterprise for the time period based on the at least a portion of the billing information and the analysis.
 12. The article of claim 11 wherein the instructions are further operable to cause data processing apparatus to perform operations comprising determining a job phase of one or more of the tasks, wherein at least one of the accounting rules applicable to capitalizable costs is related to the determined job phase.
 13. The article of claim 12 wherein the instructions are further operable to cause data processing apparatus to perform operations comprising identifying employees of the enterprise based at least in part on the individual identifiers, wherein performing an analysis by applying one or more accounting rules, includes applying at least one accounting rule applicable to employees.
 14. The article of claim 11 wherein the instructions are further operable to cause data processing apparatus to perform operations comprising determining expenses for the enterprise for the time period based on the billing information and the analysis.
 15. The article of claim 11 wherein the instructions are further operable to cause data processing apparatus to perform operations comprising retrieving billing rates associated with the individual identifiers; wherein determining the capitalizable costs for the enterprise is based at least in part on the retrieved billing rates.
 16. A system for determining capitalizable costs for an enterprise incurred for a time period, wherein the capitalizable costs are associated with internal development of software for internal use, the system comprising: a memory storing: billing rates associated with one or more individuals; and one or more accounting rules; an analysis module adapted to: receive billing information for one or more jobs; determine at least a portion of the billing information associated with the jobs corresponding to internal development of software for internal use; and identify capitalizable costs in the at least a portion of the billing information based at least in part on one or more job identifiers for one or more of the jobs; and a rules engine adapted to perform an analysis by applying one or more accounting rules to the at least a portion of the billing information, wherein at least one of the accounting rules includes a rule applicable to employees of the enterprise; and an expense module adapted to determine capitalizable costs for the enterprise for the time period based on the billing rates and the analysis.
 17. The system of claim 16 wherein at least one of the accounting rules includes an accounting rule related to a job phase of at least one of the jobs.
 18. The system of claim 16 wherein at least one of the accounting rules includes an accounting rule applicable to capitalizable costs.
 19. The system of claim 16 wherein the rules module is further adapted to modify at least a part of the billing information based on the analysis.
 20. The system of claim 16 wherein the expense module is further adapted to determine expenses for the enterprise for the time period based on the billing rates and the analysis. 